package rs.udd.service;

import rs.udd.exceptions.UddException;
import rs.udd.model.Advertiser;
import rs.udd.model.Agent;
import rs.udd.model.Category;
import rs.udd.service.dto.agent.AgentEditDto;
import rs.udd.service.dto.agent.AgentRegisterDto;
import rs.udd.service.dto.agent.AgentUploadCvDto;
import rs.udd.service.dto.agent.SettingsDto;
import rs.udd.service.dto.user.UserPasswordEditDto;

public interface AgentService extends AbstractService<Agent> {

	public Agent register(AgentRegisterDto dto) throws UddException;

	public Agent edit(AgentEditDto dto) throws UddException;
	
	public void uploadCv(AgentUploadCvDto agentUploadCvDto) throws UddException;
	
	public void deleteCv() throws UddException;

	public boolean editPassword(UserPasswordEditDto dto) throws UddException;

	public Agent findAgentByUsername(String username) throws UddException;

	public Agent findAgentByUsernameForView(String username) throws UddException;

	public SettingsDto prepareSettingsDto() throws UddException;
	
	public Category showOrHideCategory(Long id) throws UddException;

	public Advertiser showOrHideAdvertiser(Long id) throws UddException;

}
